package com.pine.dcts.taskScheduling.job;

import lombok.Getter;
import lombok.Setter;
import org.quartz.Job;

import java.sql.Timestamp;

@Setter
@Getter
public abstract class AbstractJob implements Job {

    protected  String id;

    protected String jobName;
    protected  String groupId ="dataxGroup";

    protected String groupName = "dataxGroup";

    protected String cronExpression;

    protected String remark;

    protected String methodName="execute";
    ////当该任务完成后，是否还在JobStore中继续保留该任务
    protected boolean durability = false;
    //当系统重新启动后，是否再次执行该任务
    protected boolean shouldRecover  = false;
    //对于相同的JobDetail，当指定多个Trigger时, 很可能第一个job完成之前，第二个job就开始了。
    // 指定concurrent设为false，多个job不会并发运行，第二个job将不会在第一个job完成之前开始。
    protected boolean concurrent = true;
    // 2core表达式 1非core表达式
    protected  Integer  coreType = 2;
    /**
     * 执行时间类型：每年执行 每月执行，每天执行，间隔小时。
     */
    protected Integer exeType = 1;
    /**
     * 单次任务具体执行时间.
     */
    protected Long executetime  =System.currentTimeMillis();
    /**
     * 每周执行
     */
    protected Integer week;
    /**
     * 每月执行时间，1到31号，设置一月中几号
     */
    protected Integer day ;
    /**
     * 每月或每天执行时间，1到24点，设置一天中的时间点
     */
    protected Integer hour;
    /**
     * 每月或每天执行分钟，1到59分钟。
     */
    protected Integer minute;
    /**
     * 间隔小时数，如每隔2个小时执行一次
     */
    protected Integer hournum;
    /**
     * 间隔分钟数据，如每隔20分钟执行一次。
     */
    protected Integer minnum;
    /**
     *  执行启动时间
     */
    protected Long  startTime ;
    /**
     * 停止时间
     */
    protected Long stopTime;

}
